const ordinary = {
    taskConfig: {
        taskList: [],
        taskStatus: false,
        taskNowIndex: 0,
        taskIdIndex: 0,
        errorTask:''
    },
    taskTypeCode:{
        like_post: '点赞',
        save_post: '收藏',
        comment_post: '评论',
        follow_user:'关注用户'
    },
    init() {

    },
    watchValue(key, newVal) {
        switch (key) {
            case 'taskList':
                if (!newVal.length) {
                    //无可执行任务
                } else {
                    //有可执行任务
                    console.log('有可执行任务，开始执行任务');
                    ordinary.openTask()
                }
                break;
            case 'taskStatus':
                if (newVal) {
                    //任务执行完毕
                    Xhs.taskConfig.taskStatus = true
                }
                break;
            case 'taskNowIndex':
                ordinary.taskConfig.errorTask = false
                let allTaskIndex = ordinary.taskConfig.taskList.length
                if (newVal < allTaskIndex) {
                    //还有新任务
                    ordinary.openTask()
                    return
                }
                ordinary.taskConfig.taskStatus = true
                break;
            case "errorTask":
                //上传报错任务日志
                if(newVal){
                    let {taskNowIndex,taskList} = ordinary.taskConfig
                    let params = {
                        taskType: taskList[taskNowIndex].type,
                        taskName:ordinary.taskTypeCode[taskList[taskNowIndex].type],
                        taskData: taskList[taskNowIndex].idList,
                        taskDate: Comman.getDate()
                    }
                    Xhs.errorTask(params)
                }
                break;
            default:
                break;
        }
    },
    start() {
        ordinary.taskConfig = Comman.defineReactive({
            taskList: [],
            taskStatus: false,
            taskNowIndex: 0,
            taskIdIndex: 0,
            errorTask:''
        }, '', ordinary.watchValue)
        sleep(1000)
        ordinary.taskConfig.taskList = [
            {
                type: 'follow',
                idList: ['95648474109', '42939502111', '63804169858']
            },
            {
                type: 'ordinary',
                idList:[
                    {url:'22 aptx4869发布了一篇小红书笔记，快来看吧！ 😆 jsTdONlAETfRCHc 😆 http://xhslink.com/a/DAIoYUu1vsf5，复制本条信息，打开【小红书】App查看精彩内容！',isLike:true,isCollect:true,resolve:true,msg:'早啊早啊'},
                    {url:'59 爱旅行的丫丫发布了一篇小红书笔记，快来看吧！ 😆 iv2EZQQygLvbcP0 😆 http://xhslink.com/a/lza5XTUFAvg5，复制本条信息，打开【小红书】App查看精彩内容！',isLike:true,isCollect:true,resolve:false},
                    {url:'97 意大利po河搬运工发布了一篇小红书笔记，快来看吧！ 😆 4EH7qqwh5n7QDsa 😆 http://xhslink.com/a/ZY9e7VmDCvg5，复制本条信息，打开【小红书】App查看精彩内容！',isLike:true,isCollect:true,resolve:false}
                ]
            }
        ]
    },
    openTask() {
        //开启任务
        let { taskList, taskNowIndex, taskIdIndex } = ordinary.taskConfig
        let nowTaskConfig = taskList[taskNowIndex]
        while (!depth('8').id('bhd').exists()) {
            // 按下返回键
            back();
            // 等待一段时间，避免过于频繁的操作
            sleep(1000);
        }
        switch (nowTaskConfig.type) {
            case 'follow':
                ordinary.toFollow(nowTaskConfig.idList)
                break;
            default:
                setClip('')
                ordinary.toButton(nowTaskConfig.idList, nowTaskConfig.type)
                break;
        }

    },
    // 点赞/收藏/评论
    toButton(idList, type) {
        let typeKey = ordinary.taskTypeCode
        console.log('执行日常任务：' + typeKey[type]);
        //点赞
        idList.forEach((id, index) => {
            if (id.includes('复制本条信息')) {
                home()
                setClip(id)
                sleep(2000)
                Xhs.openApp()
                let viewBtn = depth(5).id('e__').text('查看笔记').findOne(3000)
                if (viewBtn) {
                    sleep(2000)
                    App.openBtn(0, { depth: 5, id: 'e__', desc: null, text: '查看笔记' })
                    sleep(2000)
                    let likeBtn = depth(10).className('android.widget.Button').descStartsWith(typeKey[type]).findOne(2000)
                    if (likeBtn) {
                        let status = likeBtn.click()
                        if(!status){
                            toast('按钮更新失败，反馈异常')
                            ordinary.taskConfig.errorTask = true
                            return
                        }
                        sleep(2000)
                        if (type == 'resolve') {
                            //评论
                            likeBtn.click()
                            sleep(2000)
                            setText(0, '哈哈哈')
                            sleep(2000)
                            let seedBtn = depth(9).id('lkm').text('发送').findOne(2000)
                            if (seedBtn) {
                                seedBtn.click()
                                sleep(2000)
                            } else {
                                toast('留言失败，反馈异常')
                                ordinary.taskConfig.errorTask = true
                            }
                        }
                        back()
                    } else {
                        console.log('未查询到对应状态：' + index);
                        sleep(2000)
                        back()
                    }
                } else {
                    // 查询不到
                    toast('未查询到查看笔记按钮，反馈异常')
                    ordinary.taskConfig.errorTask = true
                }
                sleep(1000)
            }
        });
        console.log('任务' + typeKey[type] + '执行完毕,准备执行下一个任务');
        myUi.setTopText(Comman.getDate() + ': ' + "日常任务：" + typeKey[type] +  "执行完毕," + "准备执行下一个任务")
        ordinary.taskConfig.taskNowIndex += 1
    },
    toFollow(idList) {
        console.log('执行日常任务：关注');
        App.openBtn(0)
        sleep(1000);
        let followBtn = depth(14).id('hmf').desc('搜索').findOne(2000)
        if (followBtn) {
            followBtn.click()
        } else {
            toast('未查询到搜索按钮，反馈异常')
            ordinary.taskConfig.errorTask = true
            return
        }
        sleep(2000)
        let searchBtn1 = depth(8).id('luy').text('搜索').findOne(2000)
        if (!searchBtn1) {
            toast('未查询到外层搜索按钮，反馈异常')
            ordinary.taskConfig.errorTask = true
            return
        }
        searchBtn1.click()
        sleep(2000)
        let inputDom = depth(13).id('fah').findOne(2000)
        if (!inputDom) {
            toast('未查询到输入区域，反馈异常')
            ordinary.taskConfig.errorTask = true
            return
        }
        //进入搜索页面并循环进行关注
        idList.forEach((id, index) => {
            inputDom.click()
            sleep(2000)
            setText(0, id)
            sleep(2000)
            searchBtn1.click()
            sleep(2000)
            let switchBtn = depth(13).className('androidx.appcompat.app.ActionBar$Tab').drawingOrder(2).findOne(2000)
            if (!switchBtn) {
                toast('未查询到切换按钮，反馈异常')
                ordinary.taskConfig.errorTask = true
                return
            }
            switchBtn.click()
            sleep(2000)
            let followBtn = depth(11).id('cmp').text('关注').findOne(2000)
            let followBtn2 = depth(11).id('cmp').text('已关注').findOne(2000)
            if (followBtn) {
                //进行关注
                let status = followBtn.click()
                sleep(2000)
                let status2 = depth(11).id('cmp').text('已关注').findOne(2000)
                if (status && status2) {
                    console.log('关注成功：' + id);
                    sleep(2000)
                } else {
                    toast('关注失败，反馈异常')
                    ordinary.taskConfig.errorTask = true
                }
                return
            }
            if (followBtn2) {
                console.log('已是关注：' + id);
                sleep(2000)
                return
            }
            console.log('用户id搜索异常,反馈异常')
            ordinary.taskConfig.errorTask = true
        })
        console.log('日常任务：关注执行完毕,准备执行下一个任务');
        myUi.setTopText(Comman.getDate() + ': ' + "日常任务：关注执行完毕,准备执行下一个任务")
        ordinary.taskConfig.taskNowIndex += 1
    }
}
module.exports = ordinary;